package dados.geral;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public abstract class DAOFactory {

	private static EntityManager manager;
	private static final EntityManagerFactory factory;

	static {
		factory = Persistence.createEntityManagerFactory("testePSC");
		if (manager == null || !manager.isOpen()) {
			manager = factory.createEntityManager();
		}
	}
	
	public static FuncaoDAO getFuncaoDAO(){
		FuncaoDAO dao = new FuncaoDAO(manager);
		return dao;
	}
	public static FuncionarioDAO getFuncionarioDao(){
		FuncionarioDAO dao = new FuncionarioDAO(manager);
		return dao;
	}
	
	public static SetorDAO getSetorDao(){
		SetorDAO dao = new SetorDAO(manager);
		return dao;
	}
	
	public static LocalDAO getLocalDao(){
		LocalDAO dao = new LocalDAO(manager);
		return dao;
	}
	
	public static SetorLocalDAO getSetorLocalDao(){
		SetorLocalDAO dao = new SetorLocalDAO(manager);
		return dao;
	}
	
	public static CaracteristicaSetorDAO getCaracteristicaSetorDao(){
		CaracteristicaSetorDAO dao = new CaracteristicaSetorDAO(manager);
		return dao;
	}
	
    public static ArtistaDAO getArtistaDAO(){
            ArtistaDAO dao = new ArtistaDAO(manager);
            return dao;
    }

	public static ProdutoraDAO getpProdutoraDAO(){
		ProdutoraDAO dao = new ProdutoraDAO(manager);
		return dao;
	}

	public static IngressosDAO getIngressosDAO(){
		IngressosDAO dao = new IngressosDAO(manager);
		return dao;
	}
	
	public static EventoDAO getEventoDAO(){
		EventoDAO dao = new EventoDAO(manager);
		return dao;
	}
	
	//teste2
	
}
